//
// 
//
// 表: Person 
//
// 
//+-------------+---------+
//| Column Name | Type    |
//+-------------+---------+
//| id          | int     |
//| email       | varchar |
//+-------------+---------+
//id 是该表的主键（具有唯一值的列）。
//此表的每一行都包含一封电子邮件。电子邮件不包含大写字母。
// 
//
// 
//
// 编写解决方案来报告所有重复的电子邮件。 请注意，可以保证电子邮件字段不为 NULL。 
//
// 以 任意顺序 返回结果表。 
//
// 结果格式如下例。 
//
// 
//
// 示例 1: 
//
// 
//输入: 
//Person 表:
//+----+---------+
//| id | email   |
//+----+---------+
//| 1  | a@b.com |
//| 2  | c@d.com |
//| 3  | a@b.com |
//+----+---------+
//输出: 
//+---------+
//| Email   |
//+---------+
//| a@b.com |
//+---------+
//解释: a@b.com 出现了两次。 
//
// Related Topics 数据库 👍 532 👎 0


//There is no code of Java type for this problem
-- select
-- email
-- from Person
-- group by email
-- having count(*) > 1;

SELECT DISTINCT p1.email
FROM Person p1, Person p2
WHERE p1.email = p2.email  -- 邮箱相同
AND p1.id != p2.id;      -- ID不同（排除同一行记录）